寫程式一段時間了,對於資料結構的觀念仍然不是太清楚,於是希望透過鐵人賽督促自己努力學習,並且訓練自己的表達能力。
Niklaus Wirth的一本書的書名(Algorithms + Data Structures = Programs)
為電腦科學中的名句,中文如下:
程式 = 資料結構 + 演算法
從上述的類數學公式,我們可以知道要寫出一個好的程式,資料結構的使用
及演算法的設計
都是非常重要的。
能正確的達到目的、解決問題
可維護性高
占用的記憶體少
程式執行效率高
∵ 要占用少的記憶體,就會使執行效率變慢;且程式執行效率快,就需要使用較大的記憶體空間。
∴ 記憶體與效率兩種需求只能兩個選一個滿足。
資料,用具體符號表示,而能夠被計算機處理的資訊。
ex:成績、姓名、課表
指由資料所呈現出來且是經由人們分析而理解的訊息。
ex:紀錄、排序、整合
處理
變成資訊一個主題中各個組成要素之間的關係。
資料結構 指的就是程式所需要使用的資料於記憶體中儲存的方式,其是由演算法建立並且做運用。
不相同的演算法,可能需要使用不同的資料結構來儲存。選擇正確的資料結構,是可以提高演算法的效率。簡單來說,當資料存在記憶體中的時候,決定資料的存放順序及存放位置的,就是資料結構。
在有限步驟內,解決數學問題的程序
演算法就不在此多贅述,將重心放在資料結構為主。
細談資料結構 第六版
ISBN 978-986-312-014-8